Building Haskell Programs with Fused Effects